<?php

namespace s\libs;

use Yii;

class Helper
{
	//目录初始化，如果目录不存在，则创建
	public static function dir_init($dir_path_arr)
	{
		if (!is_array($dir_path_arr))
		{
			is_dir($dir_path_arr) or @mkdir($dir_path_arr);
		}
		else
		{
			foreach ($dir_path_arr as $dir_path)
			{
				is_dir($dir_path) or @mkdir($dir_path);
			}
		}
	}

	//查询一个字符串内是否含有特征字符串数组内任一字符串，找到则返回TRUE，否则返回FALSE
	//对于格式化正则特征字符串，目前只在"."、"/"和"-"前面加"\"
	public static function str_exists($string, $sub_strings)
	{
		$result = false;
		if (is_string($string) && is_array($sub_strings))
		{
			$pattern = "/[\.\/\-]/";
			$replacement = "\\\\$0";
			$patterns = preg_replace($pattern, $replacement, $sub_strings);
			$regex_pattern = "/((" . implode(")|(", $patterns) . "))/s";
			if (preg_match($regex_pattern, $string))
			{
				$result = true;
			}
		}
		return $result;
	}

	/**
	 * 增加vipfile文件查看时效, 默认5分钟
	 * 
	 * $data['fileview_time'] 查看文件时间
	 * $data['fileview_type'] 是否在有效时间内可以访问
	 * $data['fileview_hash'] hash加密 md5(fileview_time)
	 */
	public static function add_fileview_validity($data, $minute = 5)
	{
	    // 不验证时效
	    if (isset($data['fileview_type']) && ($data['fileview_type'] == 0)) {
	        return true;
	    }
	    // 是否存在fileview_hash
	    if (isset($data['fileview_hash']) && !empty($data['fileview_hash'])) {
	        if (empty($data['fileview_time']) || empty($data['fileview_type'])) {
	            return false;
	        }
	        // 如果hash不正确 也直接返回
	        if ($data['fileview_hash'] != md5($data['fileview_time'] . "jyvipfile" . $data['fileview_type'])) {
	            return false;
	        }

	        // 查看文件时间在5分钟之前
	        $nowTime = time();
	        $second = $minute * 60;
	        if (($nowTime - $data['fileview_time']) <= $second ) {
	            // 验证逻辑走完 返回可以查看
	            return true;
	        } else {
	            return false;
	        }
	    } else {
	        return false;
	    }
	}
}